An operating system (OS) is software, consisting of programs and data, that runs on processing devices such as computers. The OS manages the computer hardware and provides common services for efficient execution of various computer application software programs. The OS may include a number of libraries accessible to a computer application program running on top of the OS. The libraries may provide, for example, well defined programming sequences that the applications can reuse. Numerous interfaces may exist in the OS to allow the application to access the needed libraries.
It may be useful for the OS developer to have information about which OS interfaces are used by certain applications. This information may be referred to as application consumption data. When releasing a new version of an operating system, it may be desirable to carry forward support for interfaces that are heavily consumed by popular applications. In addition, if certain libraries are used more often, the OS may channel resources to the interfaces of that library.
In certain situations, however, the operating system may be provided by one vendor while the application programs may be provided by another vendor. These programs may be referred to as independent software vendor (ISV) applications. In general the operating system, and its creators, may not have access to the source code of an ISV application. Thus, the operating system has no way to tell which OS interfaces are most commonly used by the ISV application.